# 内置常量

a = False
b = True
c = None
d = NotImplemented
e = Ellipsis

print(a, b, c, d, e)

# 逻辑值检测
from decimal import Decimal
from fractions import Fraction


def check_false_values():
    """
    常量检查：
    使用 None is None 和 False is False 分别检查 None 和 False
    这两个条件用 or 连接，因为它们是不同的常量

    数值类型零的检查：
    将所有数值类型的零放在列表中
    使用 all(not x for x in values) 检查所有值是否为假值
    not x 会将值转换为布尔值并取反，all 确保所有值都为假

    空序列和多项集的检查：
    类似地，将所有空序列和集合放在列表中
    使用相同的 all 表达式检查它们是否都为假值
    """
    # 检查被定义为假值的常量
    if None is None or False is False:
        print('被定义为假值的常量')

    # 检查任何数值类型的零
    values = [0, 0.0, 0j, Decimal(0), Fraction(0, 1)]
    if all(not x for x in values):
        print('任何数值类型的零')

    # 检查空的序列和多项集
    values = ['', (), [], {}, set(), range(0)]
    if all(not x for x in values):
        print('空的序列和多项集')


# 调用函数进行检查
check_false_values()

# 布尔运算

# 比较运算
